package com.jindy.module.product.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.jindy.common.annotation.Excel;
import com.jindy.common.core.domain.BaseEntity;

/**
 * 产品对象 t_product
 *
 * @author ruoyi
 * @date 2022-09-22
 */
@Data
public class Product extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 产品名称 */
    @Excel(name = "产品名称")
    private String productName;

    /** 产品编号 */
    @Excel(name = "产品编号")
    private String productNo;

    /** 产品分类 */
    @Excel(name = "产品分类")
    private String productType;

    /** 型号 */
    @Excel(name = "型号")
    private String model;

    /** 单位 */
    @Excel(name = "单位")
    private String unit;

    /** 可见部门id */
    @Excel(name = "可见部门id")
    private String visibleDept;

    /** 可见部门 */
    @Excel(name = "可见部门")
    private String visibleDeptName;

    /** 可见人id */
    @Excel(name = "可见人id")
    private String visibleUser;

    /** 可见人 */
    @Excel(name = "可见人")
    private String visibleUserName;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 创建者id */
    @Excel(name = "创建者id")
    private String createId;

    /** 状态0上架 1下架 */
    @Excel(name = "状态0上架 1下架")
    private String status;

    /** 产品图片 */
    @Excel(name = "产品图片")
    private String image;

    /** 产品介绍 */
    @Excel(name = "产品介绍")
    private String introduce;

    /** 附件 */
    @Excel(name = "附件")
    private String enclosure;

    /** 仓库id */
    @Excel(name = "仓库id")
    private String warehouseId;

    /** 仓库名称 */
    @Excel(name = "仓库名称")
    private String warehouseName;

    /** 下架时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "下架时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date putDownTime;

    /** 上架时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "上架时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date putOnTime;

    /** 仓库 */
    @Excel(name = "仓库")
    private Long quantity;

    /**
     * 查看权限
     */
    private String deptId;
    private String userId;

    /**
     * 型号
     **/
    private List<ProductModel> models;

    /**
     * 型号数量
     */
    private Integer modelCount;

    /**
     * 产品库存数量
     */
    private Integer sums;

}
